#!/bin/bash
# 导入 TDengine 一个数据库某一日的数据

# 限制只能在测试环境的主机上执行  
if [ "$(hostname)" != "ecs-377e-1103456" ];then
    echo "ERR: 【导入脚本】只能在【测试环境】运行，不能在生产环境运行!!!"
    exit 1
fi

set -e


# ---------------------------------- 参数校验 ----------------------------------

user="root"
pwd="taosdata"
db="iot_ts"
data_dir="/mnt/sdc/opt/ems-archive/data/iot_ts/iot_ts_20231106"

# ------------------------------------------ 封装的函数 ------------------------------------------

#
# 执行 sql
#
function execute_sql(){
    local sql=$1
    taos -u "$user" "-p$pwd" -s "$sql"
}

#
# 删除多余的信息，用于处理 “TDengine 连接过程” 打印的内容
#
function process_connected(){
    sed '{        
        /^failed to create dir/d      # 删除以 "failed to create dir" 开头的行
        /^Database changed/d      # 删除以 "failed to create dir" 开头的行
        /^Welcome to the TDengine/d   # 删除以 "Welcome to the TDengine" 开头的行
        /^Copyright/d                 # 删除以 "Copyright" 开头的行
        /^$/d                         # 删除空行
        /^$/d                         # 删除空行
        /^taos>/d                     # 删除以 "taos>" 开头的行
        /^\r/d                        # 删除紧跟 "taos>" 后的回车符        
        /^\r/d                        # 删除紧跟 "taos>" 后的回车符        
        /^Query OK/d                  # 删除以 "Query OK" 开头的行        
    }'    
}

# ------------------------------------------ 测试 ------------------------------------------
csv_data_file="$data_dir/iot_ts_20231106_data_properties_w_modbus_86532806246642901.csv"
echo "length: ${#csv_data_file}"
import_data="use $db; insert into properties_w_modbus_86532806246642901 file '$data_dir/iot_ts_20231106_data_properties_w_modbus_86532806246642901.csv';"
execute_sql "$import_data" | process_connected